package com.example.firstdemo

import android.os.Bundle
import androidx.activity.enableEdgeToEdge
import androidx.appcompat.app.AppCompatActivity
import com.example.firstdemo.R
import com.itcast.demoone.fragment.DetailFragment
import com.itcast.demoone.fragment.ListFragment


class MainActivity : AppCompatActivity(), ListFragment.OnItemSelectedListener {
    override fun onCreate(savedInstanceState: Bundle?) {
        super.onCreate(savedInstanceState) // 调用父类的onCreate方法，初始化Activity
        enableEdgeToEdge() // 启用边缘到边缘显示，可能用于沉浸式状态栏/导航栏

        // 设置当前Activity的布局文件为activity_main.xml
        setContentView(R.layout.activity_main)

        /**
         * 为 null 时，表示 Activity 是首次创建;
         * 不为 null 时，表示 Activity 不是首次创建，即返回栈中存在前一个Activity实例
         */
        if (savedInstanceState == null) {
            // 初始加载列表Fragment
            // 开始一个Fragment事务，将ListFragment添加到ID为fragment_container的容器中
            supportFragmentManager.beginTransaction()
                .add(R.id.fragment_container, ListFragment()) // 添加列表Fragment
                .commit() // 提交事务
        }
    }

    override fun onItemSelected(itemId: Int) {
        // 创建详情Fragment实例
        val detailFragment = DetailFragment()

        // 执行Fragment事务，替换当前容器中的Fragment，并添加到返回栈以便返回列表页
        supportFragmentManager.beginTransaction()
            .replace(R.id.fragment_container, detailFragment)
            .addToBackStack(null) // 添加到返回栈，参数为null表示不使用名称标识
            .commit()
    }
}